Generic data can be of several different kinds: enumeration, opaque, primitive, sequence, structured, or union. You can determine the kind of generic data you are dealing with either by testing it actual type, or using its DataTypeKind Property. The following table describes the generic data kinds available, and their associated concrete generic data classes.
For each kind of data type, there is also an associated data type class. See Generic Data Type Kinds for more details. Note that if there is a data type associated with the generic data (by the means of non-null reference in its DataType Property), the kind of generic data always equals to the kind of the associated data type - this is guaranteed.
Here you will find more information to the specific data kinds:
The following class diagram shows the generic data classes and their relevant members: